//
//  BaseModelObject.h
//  Runtime给Model赋值
//
//  Created by MyMac on 15/8/11.
//  Copyright (c) 2015年 MyMac. All rights reserved.
//

#import <Foundation/Foundation.h>

@interface BaseModelObject : NSObject
/**
 *  实例方法，，，字典转模型
 *
 *  @param data 字典
 *
 *  @return 返回相应的model
 */
-(instancetype)initWithDictionary:(NSDictionary*)data;
/**
 *  构造方法 ＊＊＊字典转模型
 *
 *  @param data 字典
 *
 *  @return 返回的model
 */
+(instancetype)modelWithDictionary:(NSDictionary*)data;



/**
 *  获取该属性对应的值
 *
 *  @param propertyName 属性名
 *
 *  @return 属性的值
 */
-(id)displayCurrentModelPropertyName:(NSString*)propertyName;





/**
 *  获取该类的所有属性名，只有是在.h文件中声明的
 *
 *  @return 属性名的数组
 */
-(NSArray*)allPropertyNames;



/**
 *  属性和字典key的映射关系，当字典的key和属性名不同时需要重写此方法告知字典的key与属性名的对映关系
 *
 *  @return 映射的字典
 
 
 在model的基类中添加一个返回映射字典的方法，然后在子类中进行重写，这个映射方法在基类中返回nil，如果子类需要重写的话就对这个方法进行重写，并返回映射字典
 */
-(NSDictionary*)propertyMapDic;
@end
